The following patent application, having the same inventors and the same assignee as the present invention and filed concurrently herewith, covers subject matter related to the subject matter of the present invention: xe2x80x9cDATA PROCESSOR STORAGE SYSTEMS WITH DYNAMIC RESYNCHRONIZATION OF MIRRORED LOGICAL DATA VOLUMES SUBSEQUENT TO A STORAGE SYSTEM FAILURExe2x80x9dSer. No. 09/325,405.
1. Technical Field
The present invention is directed to methods and programs for computer storage systems conventionally implemented in disk drive storage and, more particularly, to stored data recovery by resynchronization of stored mirrored logical data volumes after failures in storage systems where the physical volume (PV) is accessed or used by multi-initiators, i.e. a plurality of independently operated data processors.
2. Background of Related Art
In the current data processing environment, there has been a dramatic increase in the availability and capacity of computer storage systems, such as hard disk drives and optical drives. Present storage systems associated with workstations may have conventional capacities up to hundreds of gigabytes. However, because of these increased capacities, problems have arisen in storage system recovery after a system failure or like problem. This is particularly the case in storage systems which use mirrored stored logical data volumes. Mirroring is the implementation where the operating system makes a plurality of copies of data (usually duplicate or triplicate copies) in order to make data recovery easier in the event of a system failure or like problem. However, all mirrored storage systems require a system resynchronization after a failure. This will resynchronize all noncurrent PV partitions used in the mirroring to represent the logical volume partitions of the logical volume group.
By way of background, most AIX(trademark) and UNIX(trademark) based operating systems use some form of stored data mirroring. A basic storage system may be considered to be a hierarchy managed by a logical volume manager and made up of logical volume groups, which are, in turn, made up of a plurality of logical volumes which are physically represented by PVs on the actual disk or hard drive. Each PV is divided into physical partitions (PPs), which are equal size segments on a disk, i.e. the actual units of space allocation. Data on logical volumes appears to be contiguous to the user, but can be noncontiguous on the PV. This allows file systems and other logical volumes to be resized and relocated, span multiple PVs and have their contents replicated for greater flexibility and availability in the storage of data. In mirrored systems, a logical volume is divided into a plurality of mirrored logical data partitions, i.e. each logical volume has two or three redundant partitions therein. Such logical and PVs are generally described in the text, AIX 6000 System Guide, Frank Cervone, McGraw-Hill, New York, 1996, pp. 53-56.
In any event, when mirrored logical volumes (LVs) are first brought on-line or initiated, they must be synchronized. In mirrored LVs, each partition of the mirror can have two states: stale or available (unstale). Data may be read from any unstale mirrored partition. On the other hand, in writing, the data must be written to all available (unstale) mirrored partitions before returning. Only partitions that are marked as unstale will be read and written to. In synchronization or in resynchronization, a command such as the AIX xe2x80x9csyncvgxe2x80x9d command is run which copies information from an unstale mirror partition to the stale mirror partition, and changes the partition designation from stale to unstale.
In systems with mirrored partitions, after a system failure, e.g. a hangup or crash, the LVs must be resynchronized. In current practice, this resynchronization must take place before the storage system may be accessed again; otherwise, the user may get inconsistent data. This is likely to result from xe2x80x9cwritesxe2x80x9d in flight, i.e. data in the process of being written into specific partitions in LVs at the time of the crash which may not be completed and which may cause mirrored partitions to have different data. Reference is made to section 6.2.7 on pp. 163-164 of the above Cervone text. Such resynchronization is usually done sequentially LV by LV. and partition by partition. Because of the increased size of current storage systems and the large size groups of logical data volumes which may be involved in a resynchronization after a storage system failure, users pay be subject to undesirable delays while waiting for the completion of synchronization in order to access data from storage systems using mirrored volumes.
The above cross-referenced patent application, xe2x80x9cDATA PROCESSOR STORAGE SYSTEMS WITH DYNAMIC RESYNCHRONIZATION OF MIRRORED LOGICAL DATA VOLUMES SUBSEQUENT TO A STORAGE SYSTEM FAILURExe2x80x9d, which is hereby incorporated by reference, offers a solution to this problem. It provides a system for dynamically resynchronizing in the event of a storage system failure. Immediately after the correction of the problem causing the failure, the resynchronization of the plurality of LVs is commenced, but without waiting for the resynchronization to be completed, data is accessed from a data partition in a portion of one of said LVs. Then, there are means for determining whether the portion of the LV containing the accessed partition has already been resynchronized prior to access, together with means responsive to these determining means for replacing data in the other mirrored partitions corresponding to the accessed data with the accessed data in said accessed partition in the event that the LV has not been resynchronized.
While this approach is very effective where the physical storage system, i.e. the physical data volume is accessed by only a single data processor, additional problems arise when the PV is accessed by multi-initiators, i.e. more than one independent data processor. Since the partitions in the PVs are shared by logical volumes on different initiators through their respective nodes, the resynchronizing effects of the LVs at these different nodes must be considered during the resynchronization.
The present invention covers accessing a physical data volume through a plurality of independent data processors at a plurality of nodes. Each node has at least one logical data volume comprising mirrored data corresponding to a logical data volume comprising mirrored data at each of the other nodes. Also, data in such corresponding LVs is represented by data stored in common partitions in said PV. When a storage failure occurs at any of the nodes, there is resynchronization of the logical data volumes of each of the nodes comprising commencing the sequential resynchronization of a logical data volume at a nonfailure node to thereby sequentially resynchronize the partitions of the physical data volume representative of said logical data volume, and indicating as resynchronized those portions of the logical data volume at said failure node represented by the resynchronized partitions of said physical data volume.
Usually, each of the logical data volumes comprises a plurality of partitions of mirrored data respectively represented by said physical data volume partitions. Logical data volumes of said nodes may be open or closed and only open logical data volumes are resynchronized. In the effective operation of the system, the commencing of the sequential resynchronization of a logical data volume at the failure node is subsequent to the commencing of the sequential resynchronization of the logical data volume at the nonfailure node. Best results are achieved with means responsive to said failure for setting resynchronization indicators for the LV at the failure node and for the corresponding logical volumes at the nonfailure nodes in combination with means for removing said resychronization indicator from the partitions of the logical data volume at said failure node represented by said resynchronized partitions of said physical data volume.